import Layout from '@/layout/index'
import {
  constantRoutes,
  constantRoutesSys
} from '@/router/routerList'

export function mapRouter(info, typeIndex) {
  const routerArr = [
    constantRoutes,
    constantRoutesSys
  ]
  const routerList = routerArr[typeIndex]
  const One = []
  let two = []
  // info 后台返回的数据
  // routerList 本地router中的数据
  info.forEach((item, index) => {
    routerList.forEach((nativeItem) => {
      if (item.meta.id == nativeItem.meta.id) { // id对应
        console.log(item)
        console.log(nativeItem)
        if (item.meta.show) {
          // 导航菜单一级
          if (item.children.length) {
            // 有二级页面时 遍历二级页面
            two = []
            const itemObj = nativeItem
            // 若是存在某个key 则添加
            item.component = Layout
            item.name = itemObj.name || itemObj.meta.id
            // }
            console.log(itemObj.redirect)
            if (itemObj.redirect) {
              item.redirect = itemObj.redirect
            }
            if (itemObj.alwaysShow) {
              item.alwaysShow = itemObj.alwaysShow
            }
            console.log(item)
            console.log(itemObj)
            // 清空上次存储的二级页面
            if (item.children.length) {
              item.children.forEach((child, childIndex) => {
                itemObj.children.forEach((sonChild, sonIndex) => {
                  if (child.meta.id == sonChild.meta.id) {
                    // 导航二级
                    if (child.meta.show) {
                      // 有页面权限时 存入数组 最后赋值
                      // 若是存在某个key 则添加
                      const childObj = itemObj.children[sonIndex]
                      child.component = childObj.component
                      child.name = childObj.name || childObj.meta.id
                      child.children = []
                      if (childObj.redirect) {
                        child.redirect = childObj.redirect
                      }
                      two.push(child)
                    }
                  }
                })
              })
            }

            if (two.length) {
              // 赋值给一级数组的child
              item.children = two
            }
          }
          // 将一级数组拼接起来
          One.push(item)
          console.log(One)
        }
      }
    })
  })
  console.log(One)
  return One
}
